/**
 * 
 */
package br.com.plurianual.model.dao.impl;

import javax.persistence.Query;

import br.com.plurianual.exception.DataAccessLayerException;
import br.com.plurianual.model.dao.UnidadeOrcamentariaDAO;
import br.com.plurianual.model.entity.UnidadeOrcamentaria;

/**
 * @author FRAGA
 *
 */
public class UnidadeOrcamentariaDAOImpl extends DAOImpl<UnidadeOrcamentaria, Integer> implements
		UnidadeOrcamentariaDAO {

	
	@Override
	public final void deleteAndClearOrphans(UnidadeOrcamentaria unidadeOrcamentaria) throws DataAccessLayerException {
		try {
			log.debug("Delete object: " + getPersistentClass().getName());
			
			Query clearAcaoQuery = this.getEntityManager().createNamedQuery("deleteUnidadeOrcamentaria.clearAcao");

			clearAcaoQuery.setParameter("unidadeOrcamentaria", unidadeOrcamentaria);
			
			clearAcaoQuery.executeUpdate();
			
			this.delete(unidadeOrcamentaria);
		} catch (Exception e) {
			handleException(e);
		}
	}
}
